package com.xiaoxin.project.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
    * 定时任务调度表
    */
@ApiModel(value="com-xiaoxin-project-system-domain-SysJob")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "sys_job")
public class SysJob implements Serializable {
    /**
     * 任务ID
     */
    @TableId(value = "job_id", type = IdType.AUTO)
    @ApiModelProperty(value="任务ID")
    private Long jobId;

    /**
     * 任务名称
     */
    @ApiModelProperty(value="任务名称")
    private String jobName;

    /**
     * 任务组名
     */
    @ApiModelProperty(value="任务组名")
    private String jobGroup;

    /**
     * 调用目标字符串
     */
    @TableField(value = "invoke_target")
    @ApiModelProperty(value="调用目标字符串")
    private String invokeTarget;

    /**
     * cron执行表达式
     */
    @TableField(value = "cron_expression")
    @ApiModelProperty(value="cron执行表达式")
    private String cronExpression;

    /**
     * 计划执行错误策略（1立即执行 2执行一次 3放弃执行）
     */
    @TableField(value = "misfire_policy")
    @ApiModelProperty(value="计划执行错误策略（1立即执行 2执行一次 3放弃执行）")
    private String misfirePolicy;

    /**
     * 是否并发执行（0允许 1禁止）
     */
    @TableField(value = "concurrent")
    @ApiModelProperty(value="是否并发执行（0允许 1禁止）")
    private String concurrent;

    /**
     * 状态（0正常 1暂停）
     */
    @TableField(value = "status")
    @ApiModelProperty(value="状态（0正常 1暂停）")
    private String status;

    /**
     * 创建者
     */
    @TableField(value = "create_by")
    @ApiModelProperty(value="创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @ApiModelProperty(value="创建时间")
    private Date createTime;

    /**
     * 更新者
     */
    @TableField(value = "update_by")
    @ApiModelProperty(value="更新者")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    @ApiModelProperty(value="更新时间")
    private Date updateTime;

    /**
     * 备注信息
     */
    @TableField(value = "remark")
    @ApiModelProperty(value="备注信息")
    private String remark;

    private static final long serialVersionUID = 1L;

    public static final String COL_JOB_ID = "job_id";

    public static final String COL_JOB_NAME = "job_name";

    public static final String COL_JOB_GROUP = "job_group";

    public static final String COL_INVOKE_TARGET = "invoke_target";

    public static final String COL_CRON_EXPRESSION = "cron_expression";

    public static final String COL_MISFIRE_POLICY = "misfire_policy";

    public static final String COL_CONCURRENT = "concurrent";

    public static final String COL_STATUS = "status";

    public static final String COL_CREATE_BY = "create_by";

    public static final String COL_CREATE_TIME = "create_time";

    public static final String COL_UPDATE_BY = "update_by";

    public static final String COL_UPDATE_TIME = "update_time";

    public static final String COL_REMARK = "remark";
}